package www.nomina.model.dao;
import java.sql.SQLException;
import java.util.ArrayList;
import www.nomina.controller.beans.turnoBean;


public class turnoDao extends nominaDao {

	/**
	 * @author Men's
	 * @category Modulo Turnos Metodo para el Alta del Turno
	 * @param Bean Precargado con los datos del turno
	 * @return ningun valor
	 * @since 27 de enero del 2014*/	

	public ArrayList<turnoBean> getCatalgo() throws Exception{
		System.out.println("(AreaDAO.getCatalgo11111)...............execute");
		StringBuilder query= new StringBuilder();
		ArrayList<turnoBean>result= new ArrayList<turnoBean>();
		try {
			query
				.append("select id_turno,turno,descripcion FROM Turno");
			System.out.println("aaaaaaaaaaaaaaaaaaaaaa");
			System.out.println("(AreaDAO.getCatalgo):------->"+query.toString());
			conn=this.getConnectionMYSQL();
			ps=conn.prepareStatement(query.toString());
			rs=ps.executeQuery();
			turnoBean bean;
			System.out.println("3");
				while(rs.next()){
					bean= new turnoBean();
					
					bean.setId_turno(rs.getInt("id_turno"));
					bean.setTurno(rs.getString("turno"));
					bean.setDescripcion(rs.getString("descripcion"));
					System.out.println("sssssss"+bean);
					result.add(bean);
				}
			
			
		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		}catch (Exception error) {
			throw new Exception(error.getMessage());
		}
		
		return result;
	}
	
	public turnoBean getTurnoTid(int id) throws Exception{
		System.out.println("(TurnoDAO.getUsuario)...............execute");
		
		StringBuilder query= new StringBuilder();
		turnoBean turno= new turnoBean();
		try {
			query
				.append("select ")
				.append("* ")
				.append("from ")
				.append("Turno ")
				.append("Where ")
				.append("id_turno=")
				.append(id);
			System.out.println("2");
			System.out.println("(TurnoDAO222222.getUsuario):------->"+query.toString());
			conn=this.getConnectionMYSQL();
			ps=conn.prepareStatement(query.toString());
			rs=ps.executeQuery();
			
			if(rs.next()){
				turno.setId_turno(rs.getInt("id_turno"));
				turno.setTurno(rs.getString("turno"));
				turno.setDescripcion(rs.getString("descripccion"));
				System.out.println("turno encontrado");
			}else{
				throw new Exception("Error  no existe.");
			}
			
			
		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		}catch (Exception error) {
			throw new Exception(error.getMessage());
			
		}
		return turno;
	}
	
	
	
	public void insertTurno(turnoBean registro) throws Exception {
		StringBuilder query = new StringBuilder();
		try {
			query.append("INSERT INTO turno ")
			.append("(id_usuario,turno, descripcion) ")
			.append("values ('")
			.append(registro.getId_usuario()).append("','")
			.append(registro.getTurno()).append("','")
			.append(registro.getDescripcion()).append("');");
			
			conn = this.getConnectionMYSQL();
			st = conn.createStatement();
			st.executeUpdate(query.toString());

		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		} catch (Exception error) {
			throw new Exception(error.getMessage());
		} finally {
			close(st);
			close(conn);
		}
	}
	/**
	 * @author Men's
	 * @category Modulo Departamento Metodo para la validar el nombre del Turno y evitar duplicacion
	 * @param Bean Precargado con los datos del turno
	 * @return true or false si existe el nombre del turno
	 * @since 27 de enero del 2014*/
	public boolean validarDepartamento(turnoBean registro) throws Exception {
		StringBuilder query = new StringBuilder();
		boolean resp = false;

		try {
			query.append("select turno from Turno Where turno='")
					.append(registro.getTurno()).append("'");

			conn = this.getConnectionMYSQL();
			ps = conn.prepareStatement(query.toString());
			rs = ps.executeQuery();

			if (rs.next()) {
				resp = true;
			} else {
				resp = false;
			}

		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		} catch (Exception error) {
			throw new Exception(error.getMessage());
		} finally {
			close(conn);
			close(ps);
			close(rs);
		}
		return resp;
	}
	/**
	 * @author Men's
	 * @category Modulo Turnos Metodo para actualizar los turnos
	 * @param Bean precargado con los datos actualizados del turno
	 * @return ningun valor
	 * @since 27 de enero del 2014*/
	public void updateTurno(turnoBean registro) throws Exception {
		try {
			StringBuilder query = new StringBuilder();
			conn = this.getConnectionMYSQL();

			query.append("UPDATE Turno SET ")
				.append("turno=''")
				.append(registro.getTurno())
				.append("','")
				.append("descripcion=''")
				.append(registro.getDescripcion())
				.append("','")
				.append(");");
			
			st = conn.createStatement();
			st.executeUpdate(query.toString());
			System.out.println("dao.turno.updateturno.Ejecutado-> "+ query.toString());
			System.out.println("dao.turno.updateturno--> actualizado");

		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		} catch (Exception error) {
			throw new Exception(error.getMessage());
		} finally {
			close(conn);
			close(st);
		}	
	}
}